#pragma strict

var spawnHoehenVarianz : Vector2 = Vector2(30, 40); 	// zweidimensionaler Vektor fuer Zufallsgrenzen
var geschwindigkeitsVarianz : Vector2 = Vector2(10,15);		// zweidimensionaler Vektor fuer Zufallsgrenzen
var geschwindigkeit : float = 10;
var health : float = 50;						// health des spezifischen Objekts
var schadensRauch : ParticleEmitter;
var explosionEffect : GameObject;

// Maximale Gesundheit zum Initialisieren bei der Generierung
var maxhealth : float = 50;
var cashBonus : int = 5;

var levelMaster : LevelMaster;


function Start () {
	/*Findwith Tag ist schnell genug und findet das erste Objekt mit diesem Tag*/
	levelMaster = GameObject.FindWithTag("LevelMaster").GetComponent(LevelMaster);

	health = maxhealth + levelMaster.waveLevel * 5;															// Volle Gesundheit 
	geschwindigkeit = Random.Range(geschwindigkeitsVarianz.x,geschwindigkeitsVarianz.y);				// Zufallsgeschwindigkeit
	transform.position.y = Random.Range(spawnHoehenVarianz.x,spawnHoehenVarianz.y);		// Zufallshoehe
	
	// Multiplier
	geschwindigkeit *= levelMaster.difficultyMultiplier;
	health *= levelMaster.difficultyMultiplier;
	maxhealth *= levelMaster.difficultyMultiplier;
}

function Update () {
	// Time.deltaTime damit pro Sekunde und nicht pro Frame transformiert wird
	transform.Translate(Vector3.forward * (geschwindigkeit * Time.deltaTime));
}

// Schadensmodell: nimmt Schadenspunkte entgegen
function schaden(schaden : float)
{
	health -= schaden;					// Schaden abziehen
	if (health <= 0)
	{
		Explode();
		return;
	}
	else if(health / maxhealth <= 0.75)
	{
		schadensRauch.emit = true;
	}
}

/*function OnTriggerEnter(projektil : Collider)
{
	takeDamage(100);

}*/


function Explode()
{
	// LevelMaster
	if(levelMaster.enemyCount > 0){
	levelMaster.enemyCount--;
	}
	levelMaster.cashCount += cashBonus;
	levelMaster.scoreCount += (maxhealth + geschwindigkeit * levelMaster.difficultyMultiplier);
	levelMaster.UpdateGUI();
	
	Instantiate(explosionEffect, transform.position, Quaternion.identity);
	Destroy(gameObject);
}